Skip to content

feat: add Maestro replay compatibility#561

Merged
thymikee merged 1 commit into
mainfrom
feat/maestro-replay-compat
May 19, 2026
Merged

feat: add Maestro replay compatibility#561
thymikee merged 1 commit into
mainfrom
feat/maestro-replay-compat

Conversation

@thymikee
Copy link
Copy Markdown
Member

Summary

Add Maestro YAML compatibility for Agent Device replay and keep Maestro-specific parsing isolated under src/compat/maestro.

Details
  • Routes replay --maestro through neutral replay backend plumbing instead of daemon/client Maestro-specific flags.
  • Moves shared .ad replay parsing/formatting/vars helpers into src/replay.
  • Supports common Maestro flow composition, selectors, interactions, easy device mappings, and explicit unsupported-syntax errors linked to Track Maestro flow compatibility for replay --maestro #558.
  • Adds local test-app .ad and Maestro fixture suites plus docs/help updates.

Validation

Verified with pnpm check:quick, focused replay/client parser tests, git diff --check, and pnpm check:unit outside the sandbox. The in-sandbox unit run hit expected localhost/Swift permission failures, then passed with sandbox permissions.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0b353c2b12

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/compat/maestro/replay-flow.ts Outdated
): MaestroReplayFlow {
const values = parseYamlDocuments(script);
const { config, commands } = splitMaestroDocuments(values);
const nextContext = { ...context, env: { ...context.env, ...(config.env ?? {}) } };
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve replay -e overrides for Maestro env defaults

When a Maestro flow defines env and a command references ${KEY}, this merge resolves ${KEY} during parsing from config.env, so the resulting SessionAction already contains the literal value. Later runReplayScriptFile builds a replay scope where CLI --env KEY=... is supposed to override file env, but there is no placeholder left, so agent-device replay flow.yaml --maestro -e USER_NAME=Bob still uses the YAML default instead of the CLI override.

Useful? React with 👍 / 👎.

postcss: 8.5.12
uuid: 14.0.0

importers:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep test-app lockfile overrides in sync

The lockfile now omits the top-level overrides block even though examples/test-app/package.json still declares pnpm.overrides for postcss and uuid. In a clean checkout, running pnpm install in examples/test-app will reapply those overrides and rewrite this lockfile back to the pinned versions, so the committed lockfile is not reproducible for the test app.

Useful? React with 👍 / 👎.

@thymikee thymikee force-pushed the feat/maestro-replay-compat branch from 0b353c2 to 576f945 Compare May 19, 2026 13:39
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 19, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstackincubator.github.io/agent-device/pr-preview/pr-561/

Built to branch gh-pages at 2026-05-19 18:22 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@thymikee thymikee force-pushed the feat/maestro-replay-compat branch from 576f945 to ed52d37 Compare May 19, 2026 17:57
@thymikee thymikee force-pushed the feat/maestro-replay-compat branch from ed52d37 to 819f957 Compare May 19, 2026 18:22
@thymikee thymikee merged commit 896adcc into main May 19, 2026
19 checks passed
@thymikee thymikee deleted the feat/maestro-replay-compat branch May 19, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant